Page({
  data: {
    shopcar: [],
    checked: false,
    allPrice: 0

  },
  onShow() {
    this.setData({
      shopcar: wx.getStorageSync('shopcar') || []
    })
    //从本地存储中拿购物车的数据

    let res = this.data.shopcar.every(item => {
      return item.status == true
    })
    //计算 全选按钮的 值还是根据every方法

    this.setData({
      checked: res
    })

    this.setShopcar()
  },
  changeItem(e) {
    //点击上面的复选框 首先要根据id手动的把数据里的status取反
    console.log(e);
    let {
      id
    } = e.currentTarget.dataset;

    this.data.shopcar.forEach(i => {
      if (i.goods_id == id) {
        i.status = !i.status
      }
    })
    //用id比用下标更准确 通过id 修改这个数据的status


    let res = this.data.shopcar.every(item => {
      return item.status == true
    })
    //计算 全选按钮的 值还是根据every方法

    this.setData({
      checked: res
    })

    this.setShopcar()
    // 存购物车数据和存本地存储 提成了公共的代码


  },
  checkAll() {
    this.setData({
      checked: !this.data.checked
    })
    //点击全选 要手动的让数据的全选数据取反

    this.data.shopcar.forEach(item => item.status = this.data.checked)
    //根据 全选按钮的true false 改变数据的status

    this.setShopcar()
    //存购物车数据和设置本地存储 存成公共的方法

  },
  setShopcar() {
    this.setData({
      shopcar: this.data.shopcar
    })

    let num = 0;
    this.data.shopcar.forEach(item => {
      if (item.status == true)
        num += item.num * item.goods_price

    })
    this.setData({
      allPrice: num
    })


    wx.setStorageSync('shopcar', this.data.shopcar)
  },
  //封装的公共的代码


  changeNum(e) {
    let {
      option,
      index
    } = e.currentTarget.dataset
    // console.log(Number(option));
    this.data.shopcar[index].num+=option
    this.setShopcar()

  },
  //数量的加减 传来两个参数 option就是 1或者-1 index是要改变谁的num的下标


  getAddress(){
    wx.chooseAddress({
      success: (res) => {
        console.log(res);
      },
    })

  }
  //调取小程序的获取收货地址的接口 拿到数据存在本地存储中 然后渲染在页面中 如果本地存储中有用户存的地址 那么就渲染地址 如果没有就展示button
})